package org.framework.edge.builder.infrastructure.entity;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
import org.wu.framework.lazy.orm.core.stereotype.LazyFieldStrategy;
import org.wu.framework.lazy.orm.core.stereotype.LazyTable;
import org.wu.framework.lazy.orm.core.stereotype.LazyTableField;

import java.io.File;
import java.time.LocalDateTime;
/**
 * describe 打包记录 
 *
 * @author Jia wei Wu
 * @date 2024/08/13 07:39 晚上
 * @see org.wu.framework.lazy.orm.core.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureEntity 
 **/
@Data
@Accessors(chain = true)
@LazyTable(tableName = "docker_build_module_record",comment = "打包记录")
@Schema(title = "docker_build_module_record",description = "打包记录")
public class DockerBuildModuleRecordDO {


    /**
     * 
     * 创建时间
     */
    @Schema(description ="创建时间",name ="createTime",example = "")
    @LazyTableField(name="create_time",comment="创建时间",defaultValue="CURRENT_TIMESTAMP",upsertStrategy = LazyFieldStrategy.NEVER,columnType="datetime",extra=" on update CURRENT_TIMESTAMP")
    private LocalDateTime createTime;

    /**
     * 
     * 使用的builder
     */
    @Schema(description ="使用的builder",name ="dockerBuilderCode",example = "")
    @LazyTableField(name="docker_builder_code",comment="使用的builder",columnType="varchar(255)")
    private String dockerBuilderCode;

    /**
     * 
     * 主键ID
     */
    @Schema(description ="主键ID",name ="id",example = "")
    @LazyTableField(name="id",comment="主键ID",notNull=true,columnType="varchar(255)")
    private String id;

    /**
     * 
     * 镜像ID
     */
    @Schema(description ="镜像ID",name ="imageId",example = "")
    @LazyTableField(name="image_id",comment="镜像ID",columnType="varchar(255)")
    private String imageId;

    /**
     * 
     * 是否删除
     */
    @Schema(description ="是否删除",name ="isDeleted",example = "")
    @LazyTableField(name="is_deleted",comment="是否删除",defaultValue="'0'",upsertStrategy = LazyFieldStrategy.NEVER,columnType="tinyint")
    private Boolean isDeleted;

    /**
     * 
     * 模块编码
     */
    @Schema(description ="模块编码",name ="moduleCode",example = "")
    @LazyTableField(name="module_code",comment="模块编码",columnType="varchar(255)")
    private String moduleCode;

    /**
     * 
     * 模块名称
     */
    @Schema(description ="模块名称",name ="moduleName",example = "")
    @LazyTableField(name="module_name",comment="模块名称",columnType="varchar(255)")
    private String moduleName;

    /**
     * 
     * 程序文件
     */
    @Schema(description ="程序文件",name ="source",example = "")
    @LazyTableField(name="source",comment="程序文件",columnType="blob")
    private File source;

    /**
     * 
     * 更新时间
     */
    @Schema(description ="更新时间",name ="updateTime",example = "")
    @LazyTableField(name="update_time",comment="更新时间",defaultValue="CURRENT_TIMESTAMP",upsertStrategy = LazyFieldStrategy.NEVER,columnType="datetime",extra=" on update CURRENT_TIMESTAMP")
    private LocalDateTime updateTime;

    /**
     * 
     * 打包版本
     */
    @Schema(description ="打包版本",name ="version",example = "")
    @LazyTableField(name="version",comment="打包版本",columnType="varchar(255)")
    private String version;

}